import { reqGetSearchInfo } from '@/API/index.js'
// search 模块的小仓库
// state: 仓库存储数据的地方
const state = {
  searchList: {}
}
// mutations: 修改 state 的唯一手段
const mutations = {
  GETSEARCHLIST(state, searchList) {
    state.searchList = searchList
  }
}
// action: 处理 action，可以书写自己的业务逻辑，也可以处理异步
const actions = {
  async getSearchList({ commit }, params = {}) {
    const result = await reqGetSearchInfo(params)
    if (result.code === 200) {
      commit('GETSEARCHLIST', result.data)
      console.log(result.data)
    }
  }
}
// getters: 理解为计算属性，用于简化仓库数据，让组件获取仓库的数据更加方法
// 计算属性
// 项目当中 getters 主要的作用是：简化仓库中的数据（简化数据而生）
// 可以把我们将来在组件当中需要用的数据简化一下[将来组件在获取数据的时候就方便了]
const getters = {
  // 单签形参state，当前仓库中的state，并非大仓库中的哪个state
  goodsList(state) {
    // 假如网络不给力没有网 state.searchList.goodsList应该返回的是undefined
    // 计算新的属性的属性值至少给人家来一个数组
    return state.searchList.goodsList || []
  },
  trademarkList(state) {
    return state.searchList.trademarkList || []
  },
  attrsList(state) {
    return state.searchList.attrsList || []
  }
}

// 对外暴露 store 类的一个实例
export default {
  state,
  mutations,
  actions,
  getters
}
